import Req from '@/api/role'

export default {
  name: 'RoleManagement',
  data() {
    return {
      // 表格数据
      tableData: [],
      loading: false,
      // 对话框
      dialogVisible: false,
      dialogTitle: '新增角色',
      submitLoading: false,
      // 表单数据
      formData: {
        roleName: '',
        roleCode: '',
        description: '',
      },
      searchForm: {
        roleName: "",  // 角色名称，可选
        status: "",      // 状态：1-正常，0-禁用，可选
        pageNum: 1,     // 页码，从1开始
        pageSize: 10   // 每页记录数
      }
    }
  },
  mounted() {
    this.init()
  },
  methods: {
    init() {
      this.getList()
    },
    // 获取角色列表
    getList() {
      Req.getRoleList(this.searchForm).then(res => {
        this.tableData = res.data.list
      })
    },
    // 新增用户
    handleAdd() {
      this.dialogTitle = '新增角色'
      this.formData = {
        roleName: '',
        roleCode: '',
        description: '',
        status: 1
      }
      this.dialogVisible = true
    },
    // 编辑用户
    handleEdit(row) {
      this.dialogTitle = '编辑用户'
      this.formData = {...row}
      this.dialogVisible = true
    },
    // 删除用户
    handleDelete(row) {
      // this.$confirm('确认删除该用户?', '提示', {
      //   type: 'warning'
      // }).then(async () => {
      //   try {
      //     // 调用删除接口
      //     await new Promise(resolve => setTimeout(resolve, 500))
      //     this.$message.success('删除成功')
      //     this.getList()
      //   } catch (error) {
      //     this.$message.error('删除失败')
      //   }
      // }).catch(() => {
      // })
    },
    // 提交表单
    handleSubmit() {

      Req.createRole(this.formData).then(res => {
        if (res.code === 200) {
          this.getList()
          this.dialogVisible = false
          this.$refs.formData && this.$refs.formData.resetFields()
          this.$message.success('新增成功')
        }
      }).catch(() => {
        this.$message.error('新增失败')
      })
    },
    // 关闭对话框
    handleDialogClose() {
      this.dialogVisible = false
      this.$refs.formData && this.$refs.formData.resetFields()
    },
  }
}